package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * FSE位置坐标日志对象 st_fse_location_log
 * 
 * @author shihx
 * @date 2020-03-04
 */
@ApiModel(value="FseLocationLog",description="FSE位置坐标日志实体") // 用来描述封装的参数对象与返回的参数对象
//@JsonInclude(JsonInclude.Include.NON_NULL)
public class FseLocationLog extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty(value = "主键ID",name="id",required = true,dataType="Long",example="主键ID")
    private Long id;

    /** FSEID */
    @Excel(name = "FSEID")
    @ApiModelProperty(value = "FSEID",name="fseId",required = true,dataType="String",example="FSEID")
    private String fseId;

    /** FSE名称 */
    @Excel(name = "FSE名称")
    @ApiModelProperty(value = "FSE名称",name="fseName",required = true,dataType="String",example="FSE名称")
    private String fseName;

    /** 最新X坐标 decimal(10,7) */
    @Excel(name = "最新X坐标 decimal(10,7)")
    @ApiModelProperty(value = "最新X坐标",name="postx",required = true,dataType="Double",example="最新X坐标")
    private Double postx;

    /** 最新Y坐标 decimal(10,7) */
    @Excel(name = "最新Y坐标 decimal(10,7)")
    @ApiModelProperty(value = "最新Y坐标",name="posty",required = true,dataType="Double",example="最新Y坐标")
    private Double posty;

    /** 接收时间 */
    @Excel(name = "接收时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "接收时间",name="receiveDate",required = true,dataType="Date",example="接收时间")
    private Date receiveDate;

    /** 网络状态 */
    @Excel(name = "网络状态")
    @ApiModelProperty(value = "网络状态",name="networkState",required = true,dataType="String",example="网络状态")
    private String networkState;

    /** 位置服务状态 字典（例如经纬度获取成功或异常） */
    @Excel(name = "位置服务状态", readConverterExp = "例=如经纬度获取成功或异常")
    @ApiModelProperty(value = "位置服务状态 字典 例如经纬度获取成功或异常",name="state",required = true,dataType="String",example="位置服务状态 字典 例如经纬度获取成功或异常")
    private String state;

    /** 位置服务状态描述 */
    @Excel(name = "位置服务状态描述")
    @ApiModelProperty(value = "位置服务状态描述",name="stateDescribe",required = true,dataType="String",example="位置服务状态描述")
    private String stateDescribe;

    /** 经纬度逆解析地理位置 */
    @Excel(name = "经纬度逆解析地理位置")
    @ApiModelProperty(value = "经纬度逆解析地理位置",name="address",required = true,dataType="String",example="经纬度逆解析地理位置")
    private String address;

    @ApiModelProperty(value = "海拔",name="altitude",required = true,dataType="String",example="海拔")
    private String altitude;
    @ApiModelProperty(value = "路线，航向（取值范围是0.0° ~ 359.9°，0.0°代表正北方向），负数代表航向不可用",name="course",required = true,dataType="String",example="路线，航向（取值范围是0.0° ~ 359.9°，0.0°代表正北方向），负数代表航向不可用")
    private String course;
    @ApiModelProperty(value = "速度",name="speed",required = true,dataType="String",example="速度")
    private String speed;

    @ApiModelProperty(value = "1 定位上传，2 签到上传，3 签离上传",name="type",required = true,dataType="String",example="1 定位上传，2 签到上传，3 签离上传")
    private String type;





    private String startTime;

    private String endTime;

    private Long lengthOfStay; //停留时长

    private String online; //在线状态



    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setFseId(String fseId) 
    {
        this.fseId = fseId;
    }

    public String getFseId() 
    {
        return fseId;
    }
    public void setFseName(String fseName) 
    {
        this.fseName = fseName;
    }

    public String getFseName() 
    {
        return fseName;
    }
    public void setPostx(Double postx) 
    {
        this.postx = postx;
    }

    public Double getPostx() 
    {
        return postx;
    }
    public void setPosty(Double posty) 
    {
        this.posty = posty;
    }

    public Double getPosty() 
    {
        return posty;
    }
    public void setReceiveDate(Date receiveDate) 
    {
        this.receiveDate = receiveDate;
    }

    public Date getReceiveDate() 
    {
        return receiveDate;
    }
    public void setNetworkState(String networkState) 
    {
        this.networkState = networkState;
    }

    public String getNetworkState() 
    {
        return networkState;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }
    public void setStateDescribe(String stateDescribe) 
    {
        this.stateDescribe = stateDescribe;
    }

    public String getStateDescribe() 
    {
        return stateDescribe;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getAltitude() {
        return altitude;
    }

    public void setAltitude(String altitude) {
        this.altitude = altitude;
    }

    public String getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }

    public String getSpeed() {
        return speed;
    }

    public void setSpeed(String speed) {
        this.speed = speed;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Long getLengthOfStay() {
        return lengthOfStay;
    }

    public void setLengthOfStay(Long lengthOfStay) {
        this.lengthOfStay = lengthOfStay;
    }

    public String getOnline() {
        return online;
    }

    public void setOnline(String online) {
        this.online = online;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("fseId", getFseId())
            .append("fseName", getFseName())
            .append("postx", getPostx())
            .append("posty", getPosty())
            .append("receiveDate", getReceiveDate())
            .append("networkState", getNetworkState())
            .append("state", getState())
            .append("stateDescribe", getStateDescribe())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("address", getAddress())
                .append("online", getOnline())
            .toString();
    }
}
